import 'dart:convert';

// 定义一个函数，用于将 JSON 字符串解析为 FocusModel 对象
FocusModel focusModelFromJson(String str) =>
    FocusModel.fromJson(json.decode(str));

// 定义一个函数，用于将 FocusModel 对象转换为 JSON 字符串
String focusModelToJson(FocusModel data) => json.encode(data.toJson());

// 定义一个轮播数据模型
class FocusModel {
  List<Result> result; // 焦点模型的结果列表

  // 构造函数，接收一个 result 列表作为参数
  FocusModel({required this.result});

  // 工厂方法，用于将 JSON 数据转换为 FocusModel 对象
  factory FocusModel.fromJson(Map<String, dynamic> json) => FocusModel(
        result:
            List<Result>.from(json["result"].map((x) => Result.fromJson(x))),
      );

  // 将 FocusModel 对象转换为 JSON 数据
  Map<String, dynamic> toJson() => {
        "result": List<dynamic>.from(result.map((x) => x.toJson())),
      };
}

// 定义一个结果类
class Result {
  String id; // ID
  String title; // 标题
  String status; // 状态
  String pic; // 图片
  String? url; // 可选的链接

  // 构造函数，接收各个属性作为参数
  Result({
    required this.id,
    required this.title,
    required this.status,
    required this.pic,
    this.url, // 链接为可选参数
  });

  // 工厂方法，用于将 JSON 数据转换为 Result 对象
  factory Result.fromJson(Map<String, dynamic> json) => Result(
        id: json["_id"], // 从 JSON 数据中获取 ID
        title: json["title"], // 从 JSON 数据中获取标题
        status: json["status"], // 从 JSON 数据中获取状态
        pic: json["pic"], // 从 JSON 数据中获取图片
        url: json["url"], // 从 JSON 数据中获取链接（可选）
      );

  // 将 Result 对象转换为 JSON 数据
  Map<String, dynamic> toJson() => {
        "_id": id, // 将 ID 转换为 JSON 格式
        "title": title, // 将标题转换为 JSON 格式
        "status": status, // 将状态转换为 JSON 格式
        "pic": pic, // 将图片转换为 JSON 格式
        "url": url, // 将链接转换为 JSON 格式
      };
}
